﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Client.Request.Trade
{
    /// <summary>
    /// 支付通道请求
    /// </summary>
    public class PayChannelRequest
    {
        /// <summary>
        /// 申请Id
        /// </summary>
        [Required(ErrorMessage = "申请Id不能为空")]
        [MaxLength(36,ErrorMessage = "申请Id不能超过36个字符")]
        public string ApplyId { get; set; }

        /// <summary>
        /// 通道Id
        /// <para>AliPay.Transfer = 支付宝即时到账，Web扫码</para>
        /// <para>AliPay.MoblieWap = 支付宝移动网页支付</para>
        /// <para>AliPay.APP = 支付宝App支付</para>
        /// <para>WeiXin.QRCode = 微信扫码支付</para>
        /// <para>WeiXin.JSAPI = 微信Js支付</para>
        /// <para>WeiXin.App = 微信App支付</para>
        /// <para>Gyb.WebPay = 贵阳银行网关支付</para>
        /// <para>Gyb.ProtocolPay = 贵银行协议支付</para>
        /// <para>Union.WebPay = 银联网关支付</para>
        /// <para>YJPay.WebPay = 易极付</para>
        /// </summary>
        [Required(ErrorMessage = "通道Id不能为空")]
        [MaxLength(20,ErrorMessage = "通道Id不能超过20个字符")]
        public string ChannelId { get; set; }

        /// <summary>
        /// 银行卡付款Id
        /// </summary>
        public string BankCradPayId { get; set; }

        /// <summary>
        /// 客户端Ip
        /// </summary>
        [Required(ErrorMessage = "客户端Ip不能为空")]
        [MaxLength(255,ErrorMessage = "客户端Ip不能超过255个字符")]
        public string ClientIP { get; set; }        

        /// <summary>
        /// 通道参数
        /// </summary>
        public Dictionary<string, string> ChannelParams { get; set; }
    }
}
